// 使用js实现订阅发布模式
// 订阅发布模式 有很多种写法，目前给大家展示是最简单的一种
// 主要是两个动作： 1. 订阅 - on 2. 发布 - emit
// 主要思想： 先把对应要做的事情，使用一个key表示，把对应需要执行的代码放在个函数数组里面
// 当我们想要执行的时候，根据key去取出对应所有的函数执行

var eventBus = {
  on(key, fn) {
    // 把key和一个数组对应起来
    if (!this[key]) this[key] = [];
    // 把fn存进数组里面
    this[key].push(fn);
  },
  emit(key) {
    this[key]?.forEach((fn) => fn());
  },
};

export default eventBus;
